System and method for editing digital images

ABSTRACT

A system and method for editing digital images are described. The system for editing digital images forms an image template containing a selected record of one or more image editing operations performed on a first image to obtain a first edited image. The image template also contains the first edited image. The system then applies the image template to one or more second images.

RELATED APPLICATIONS

This application is a continuation of application Ser. No. 09/769,686, filed Jan. 24, 2001 now U.S. Pat. No. 7,136,528, which claimed the benefit of U.S. Provisional Application No. 60/181,844, filed Feb. 11, 2000.

FIELD OF THE INVENTION

This invention relates generally to digital imaging, and, more particularly, to a system and method for editing digital images.

COPYRIGHT NOTICE/PERMISSION

A portion of the disclosure of this patent document may contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright© 1999, Sony Electronics, Inc., All Rights Reserved.

BACKGROUND OF THE INVENTION

With the increasing popularity of computers and the widespread use of the Internet, and especially of the World Wide Web, in many fields, traditional analog technology is being replaced by digital technology. One example of this transformation is in the field of photography. It is well known in the art that traditional photography involves conventional film and chemical processing, whereas digital photography involves the creation of digital photography files and the manipulation of the digital photographs through digital processing.

Generally, digital photography is advantageous over traditional photography since the repetitive costs of film and chemical processing are eliminated. Furthermore, digital photography files provide a permanent storage format previously unavailable to photographers. At the same time, a series of image editing operations may be performed on digital photographs, including cropping, color enhancement, changes to brightness, color, or luminosity, or image effects.

Although the same image editing operations may be subsequently applied to several digital images, the edited images may have different image characteristics. Therefore, the edited images may not be combined or otherwise used together without some degree of difficulty.

SUMMARY

A system for editing digital images forms an image template containing a selected record of one or more image editing operations performed on a first image to obtain a first edited image. The image template also contains the first edited image. The system then applies the image template to one or more second images. In one aspect, the selected record of the one or more image editing operations is stored with the first edited image in an image file. In another aspect, the selected record of image editing operations is stored in a storage file separate from the first edited image.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and may be better understood by referring to the following description in conjunction with the accompanying drawings, in which like references indicate similar elements and in which:

FIG. 1A is a block diagram illustrating one embodiment of a system for editing digital images.

FIG. 1B is a block diagram of one embodiment of an operating environment in which the system illustrated in FIG. 1A may function.

FIG. 1C is a block diagram of one embodiment of a computer architecture which can be used by the system illustrated in FIG. 1A.

FIG. 2 is a flow diagram of one embodiment of a method for editing digital images from the server's perspective.

FIG. 3 is a flow diagram of one embodiment of the method for editing digital images from the client's perspective.

DETAILED DESCRIPTION

In the following description, reference is made to the accompanying drawings, in which like references indicate similar elements, and in which are shown, by way of illustration, embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. The following description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.

Beginning with an overview of the operation of the invention, FIG. 1A illustrates one embodiment of a system 100 for editing digital images. System 100 includes server 101 and one or more clients 103, 105. Client 103 represents any device that may enable user's online access to information. In one embodiment, client 103 is a device, which allows a user to interact with server 101. In this embodiment, client 103 may provide a user interface to communicate information to the user, for example a display means to present such information to the user. Also, client 103 may provide a second user interface to allow the user to communicate information to client 103, for example an input means such as a keyboard.

In one embodiment, server 101 includes an image editing module 110 and a database module 112, coupled to the image editing module 110. Database module 112 stores images and provides the images to client 103 upon request from users. Server 101 receives a request to display an image, retrieves the image from database module 112, and provides that image to client 103. Server 101 also receives an electronic representation of one or more image editing operations from client 103 and processes this electronic representation using the image editing module 110 to obtain an edited image. In one embodiment, server 101 performs the image editing operations on the retrieved image to obtain the edited image. Alternatively, client 103 may directly perform the image editing operations on the retrieved image.

Server 101 then selectively stores the image editing operations in the database module 112 and provides the edited image to client 103. It should be noted that a wide variety of services other than the services described above may be provided by server 101 to client 103 without loss of generality. In one embodiment, server 101 displays various advertisements when providing a service to one or more clients 103. In this embodiment, server 101 may receive compensation from a source whose advertisements are presented to client(s) 103.

It should be noted that although FIG. 1A illustrates only two modules performing the above functionality, more or less modules may be used to perform this functionality. In addition, in another embodiment (not shown), a part of this functionality is performed by a module or several modules residing on client 103 (e.g., image editing module 110 resides on client 103 and database module 112 resides on server 101). In yet another embodiment, all modules performing the above functionality (e.g., both image editing module 110 and database module 112) reside on client 103, and client 103 may or may not be connected to server 101.

In one embodiment of a system for editing digital images, as shown in FIG. 1B, server 101 hosts a web site and is part of, or coupled to, an Internet Service Provider (ISP) 135 to provide services over the Internet. The client computer 103 executes a conventional Internet browsing application to exchange data with the server 101. It is readily apparent that the present invention is not limited to Internet access and Internet web-based sites; directly coupled and private networks are also contemplated.

One embodiment of a computer system 140 suitable for use as server 101 is illustrated in FIG. 1C. In some embodiments, in which client 103 is a computer, computer system 140 may also be suitable for use as client 103. Computer system 140 includes a processor 150, a memory 155 and input/output capability 160 coupled to a system bus 165. Memory 155 is configured to store instructions which, when executed by processor 150, perform the methods described herein. Input/output 160 provides for the delivery and display of information to the users. Input/output 160 also encompasses various types of computer-readable media, including any type of storage device that is accessible by the processor 150. One of skill in the art will immediately recognize that the term “computer-readable medium/media” further encompasses a carrier wave that encodes a data signal. It will also be appreciated that the server 101 is controlled by operating system software executing in memory 155. Input/output and related media 160 store the computer-executable instructions for the operating system and methods of the present invention.

The description of FIG. 1B and FIG. 1C is intended to provide an overview of computer hardware and other operating components suitable for implementing the invention, but is not intended to limit the applicable environments. It will be appreciated that computer system 140 is one example of many possible computer systems that have different architectures. A typical computer system will usually include at least a processor, memory, and a bus coupling the memory to the processor. One of skill in the art will immediately appreciate that the invention can be practiced with other computer system configurations, including microprocessor systems, minicomputers, mainframe computers, and the like. The invention can also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.

Next, the particular methods of the invention are described in terms of computer software with reference to flow diagrams. FIG. 2 and FIG. 3 are flow diagrams of one embodiment of a method for editing digital images from the server's perspective and, respectively, from the client's perspective. The methods constitute computer programs made up of computer-executable instructions illustrated as blocks (acts) 210-290 in FIG. 2, and blocks (acts) 310-395 in FIG. 3. Although these blocks are shown in a particular order, this order may not be followed and may be changed without loss of generality. In addition, not all blocks within the flow diagrams of FIG. 2 or FIG. 3 may be needed to execute a corresponding method.

Describing the computerized methods by reference to flow diagrams enables one skilled in the art to develop programs including instructions to carry out the methods on a suitable computer (the processor of the computer executing the instructions from computer-readable media). If written in a programming language conforming to a recognized standard, such instructions can be executed on a variety of hardware platforms and for interface to a variety of operating systems. In addition, the present invention is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Furthermore, it is common in the art to speak of software, in one form or another (e.g. program, procedure, process, application, module, logic, etc.), as taking an action or causing a resolve. Such expressions are merely a shorthand way of saying that execution of the software by a computer causes the processor of the computer to perform an action or produce a result.

FIG. 2 is a flow diagram of one embodiment of a method for editing digital images from the server's perspective. At processing block 210, an image is retrieved from database module 112 and sent to client 103, based on a request to display the image received from client 103.

At processing block 220, one or more image editing operations are received from client 103. In one embodiment, the image editing operations may include cropping of the image, enhancing color characteristics of the image, changing brightness, color, or luminosity characteristics of the image, and applying an image effect, such as a filter, to the image. Alternatively, other image editing operations may be transmitted from client 103 to the server for processing.

At processing block 230, the image editing operations are performed on the retrieved image to obtain an edited image. In one embodiment, the image editing module 110 shown in FIG. 1A performs the image editing operations. Alternatively, other modules within server 101 may perform the image editing operations.

At processing block 240, image editing operations are selectively stored in database module 112 and the edited image is sent to client 103. In one embodiment, a selected record of the image editing operations is stored together with the edited image in an image file. Alternatively, the selected record of the image editing operations may be stored in a separate storage file, which resides in a different location than the storage location of the edited image. In one embodiment, all image editing operations performed are stored as part of the record in database module 112. Alternatively, some image editing operations may be discarded before being stored as part of the selected record.

The edited image and the record of editing image operations form an image template. In one embodiment, the image template is applied to a new image to ensure that the same editing image operations are performed on the new image and that the image characteristics of the new edited image are identical to the image characteristics of the edited image.

At processing block 250, a decision is made whether a second new image must be retrieved and edited. In one embodiment, the user decides whether to edit a new image and communicates the decision to client 103, which forwards the decision to server 101.

If a second new image is to be retrieved and edited, at processing block 260, the new image is retrieved from database module 112 and is sent to client 103. Next, at processing block 265, upon receiving of a request to edit the new image, the image editing operations within the stored record are retrieved and processing blocks 230 through 250 are repeated.

Otherwise, at processing block 270, a decision is made whether any stored edited images are to be combined. In one embodiment, the user decides whether to combine two or more of the edited images or portions thereof and communicates the decision to client 103, which forwards it to the server.

If a decision is made to combine the edited images, the edited images are retrieved and combined to obtain an output image, which is then sent to client 103. In one embodiment, the edited images are combined automatically. Alternatively, a series of operations may be performed to combine the entire edited images or portions of the edited images. Otherwise, if edited images need not be combined, the procedure stops at processing block 290.

FIG. 3 is a flow diagram of one embodiment of the method for editing digital images from the client's perspective. At processing block 310, a request to display an image is sent to server 101.

At processing block 320, the image is received from server 101 and is displayed for the user. Then, at processing block 330, one or more image editing operations are received from the user and are sent to server 101. In one embodiment, the image editing operations may include cropping of the image, enhancing color characteristics of the image, changing brightness, color, or luminosity characteristics of the image, and applying an image effect, such as a filter, to the image. Alternatively, other image editing operations may be transmitted to the server for processing.

At processing block 340, an edited image is received from server 101 and is displayed for the user. At processing block 350, a decision is made whether a second new image must be retrieved and edited. In one embodiment, the user decides whether to edit a new image and communicates the decision to server 101.

If a new image is to be retrieved and edited, at processing block 360, a new image is received from the server and is displayed for the user. Next, at processing block 370, a request to edit the new image is transmitted to the server 101 and processing blocks 340 through 350 are repeated.

Otherwise, at processing block 380, a decision is made whether any stored edited images are to be combined. In one embodiment, the user decides whether to combine two or more of the edited images or portions of the edited images and communicates the decision to server 101.

If edited images are to be combined, then at processing block 390, an output image representing the combination of the edited images is received. Otherwise, the procedure stops at processing block 395.

Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement, which is calculated to achieve the same purpose, may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the present invention.

The terminology used in this application with respect to network architecture is meant to include all client-server environments. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof. 

1. A method comprising: forming an image template containing a first edited image and a selected record of an image editing operation, said image editing operation having been performed on a first image to obtain said first edited image; and applying said image template to at least one second image, said applying of said image template comprises performing said image editing operation on said second image to obtain a second edited image.
 2. The method according to claim 1, wherein said forming comprises storing said selected record of said image editing operation with said first edited image in an image file.
 3. The method according to claim 1, wherein said forming comprises storing said selected record of said image editing operation in a storage file separate from said first edited image.
 4. The method according to claim 1, wherein said image editing operation comprises cropping said first image.
 5. The method according to claim 1, wherein said image editing operation comprises an operation of enhancing color characteristics of said first image.
 6. The method according to claim 1, wherein said image editing operation comprises an operation of modifying brightness characteristics of said first image.
 7. The method according to claim 1, wherein said image editing operation comprises an operation of modifying luminosity characteristics of said first image.
 8. The method according to claim 1 being performed within a microprocessor system.
 9. A method comprising: forming an image template including a first edited image and a selected record of an image editing operation, said image editing operation being performed on a first image to produce said first edited image; and applying said image template to a second image to perform said image editing operation on said second image to produce a second edited image.
 10. The method according to claim 9 further comprising: combining the first edited image and the second edited image to produce an output image to be provided to a device supplying at least the first image.
 11. The method according to claim 9, wherein said forming comprises storing said selected record of said image editing operation with said first edited image in an image file.
 12. The method according to claim 9, wherein said forming comprises storing said selected record of said image editing operation in a storage file separate from said first edited image.
 13. The method according to claim 9, wherein said image editing operation comprises cropping said first image.
 14. The method according to claim 9 being performed within a microprocessor system.
 15. A computer readable storage medium containing executable instructions, which, when executed in a processing system, cause said processing system to perform a plurality of operations comprising: forming an image template containing a first edited image and a selected record of at least one image editing operation, said at least one image editing operation having been performed on a first image to obtain said first edited image; and applying said image template to at least one second image and performing said at least one image editing operation on said second image to obtain a second edited image so that said first edited image and said second edited image include at least one identical image characteristic.
 16. The computer readable storage medium according to claim 15, wherein said processing system, when forming said image template, retrieves said selected record to determine said image editing operation performed on said first edited image combining said second edited image with said first edited image to form an output image.
 17. The computer readable storage medium according to claim 15, wherein said processing system, when forming said image template, combines said second edited image with said first edited image to form an output image.
 18. The computer readable storage medium according to claim 15, wherein said processing system, comprises combining said second edited image with said first edited image to form an output image.
 19. The computer readable storage medium according to claim 18, wherein said processing system, when combining said first edited image and said second edited image, comprises transmitting said output image to a user. 